#include "myscene.h"
#include<stdlib.h>
#include<QTimer>
#include"handler.h"
#include<myitem.h>
#include<QCursor>
MyScene::MyScene(QObject *parent) : QGraphicsScene(parent)
{
    for(int i=0;i<=15;i++)
    {
        //获取图片的宽高，x和y的坐标。这里获取宽和高
        //QGraphicsItem类中方法设置图元在场景中的位置
        this->item[i]=new MyItem;
        this->item[i]->setPos(i/4*180,i%4*180);//设成180*180了QAQ
        this->addItem(this->item[i]);//添加场景
    }
    //newy一个定时器
    //换图片：定时器决定隔多久换图片，随机值确定换哪个图片
    this->ptimer=new QTimer;

    connect(this->ptimer,SIGNAL(timeout()),this,SLOT(showMouse()));
}
//当定时器时间到了触发该函数
void MyScene::showMouse()
{
    //每次开始前重置所有图源
    for(int i=0;i<=15;i++)
    {
        this->item[i]->setPic(":/bg/pic/BeatMouse_p9.jpg");
        //当前图元不是老鼠的时候this->mouse是false
        this->item[i]->setMouse(false);
    }

    //随机一个数0~15
    //1~2
    int count=rand()%2;//随机数获取老鼠出现在那个图元
    for(int i=0;i<=count;i++)
    {
        int index=rand()%16;//%16控制随机数的范围
        this->item[index]->setPic(":/bg/pic/BeatMouse_P6.png"); //切换图片,显示地鼠
        //当前图元是老鼠的时候this->mouse是true
        //在myitem中点击事件会判断当前点击事图元的this->mouse的状态，以此来触发相应的事件
        this->item[index]->setMouse(true);//设置为true，表示有地鼠
    }
}

//按钮实现

void MyScene::startGame()
{
    for(int i=0;i<=15;i++)
    {
        this->item[i]->setStart(true);//设置每一个图元的start状态
        item[i]->setCursor(QCursor(QPixmap(":/bg/pic/BeatMouse_p2.png")));
    }
    //点击开始游戏后，将游戏开始状态设置为 是

    Handler *hand=Handler::getInstance();
    hand->setScore();
    hand->setTime();
    this->ptimer->start(800);
}

void MyScene::endGame()
{
    this->ptimer->stop();
    Handler *hand1=Handler::getInstance();
    hand1->stopTime();

    for(int i=0;i<=15;i++)
    {
        this->item[i]->setStart(false);
    }
    //点击结束游戏后，将游戏开始状态设置为 否

    for(int i=0;i<=15;i++)
    {
        this->item[i]->setPic(":/bg/pic/BeatMouse_p9.jpg");
        this->item[i]->setMouse(false); //设置标志为假，表示么有地鼠
    }
    //先暂停游戏，再清空界面
}
